from django.conf.urls import url
from rest_framework import routers
from rest_framework_jwt.views import obtain_jwt_token

from . import views

urlpatterns = [
    #注册用户
    url(r'^users/$', views.UserView.as_view()),
    #判断用户是否注册
    url(r'^usernames/(?P<username>\w{5,20})/count/$', views.UsernameCountView.as_view()),
    #判断手机号是否已注册
    url(r'^mobiles/(?P<mobile>1[3-9]\d{9})/count/$', views.MobileCountView.as_view()),

    #JWT登录
    # url(r'^authorizations/$', obtain_jwt_token),#内部认证代码还是django 登录成功生成token
    url(r'^authorizations/$', views.UserAuthorizeView.as_view()),#内部认证代码还是django 登录成功生成token
    # obtain_jwt_token 最终调用 get_by_natural_key函数
    # 返回 return self.get(**{self.model.USERNAME_FIELD: username})  self=User.objects
    #User.objects.get(username=zs) 规定根据username来查询 传入手机号 则也被当作username
    #解决这个问题 需要增加 ModelBackend类中的子类 代替 authenticate()方法

    #获取用户详情
    url(r'^user/$', views.UserDetailView.as_view()),
    #更新邮箱
    url(r'^email/$', views.EmailView.as_view()),
    #更新邮箱
    url(r'^emails/verification/$', views.EmailVerifyView.as_view()),
    #保存商品浏览记录
    url(r'^browse_histories/$', views.UserBrowserHistoryView.as_view()),
]
router = routers.DefaultRouter()
router.register(r'addresses', views.AddressViewSet, base_name='addresses')

urlpatterns += router.urls